#ifndef CASEDB_DBTYPES_HPP
#define CASEDB_DBTYPES_HPP

#include "CaseDB/CaseDBConfig.hpp"

namespace CaseDB
{

/// \ingroup CaseDB
/// \brief It provides the list of database types supported by the database operations.
/// 
/// The enumerated values are mainly used to make conversions from a boost::any variant value to the specific type, 
///	during various database adaptation situations.
/// \par
/// Another usage is to specify the metadata for record set results or for SQL statement parameters.
struct DbTypesEnum
{
	enum TypeID 
	{
		Integer,	/// < an integral type (signed or unsigned) corresponding to type \p int
		Number,		/// < a numeric type (floating point) corresponding to type \p double
		String,		/// < a string type, corresponding to type \p std::string
		Blob		/// < a binary buffer type. 
	};
};

/// \brief Alias for supported database types enumeration.
typedef DbTypesEnum::TypeID DbTypes;

} // namespace CaseDB

#endif // CASEDB_DBTYPES_HPP
